SUBROUTINE ExportSpatialAveragePlants &
!
(init)
IMPLICIT NONE
!arguments with intent in:
LOGICAL, OPTIONAL, INTENT(IN) :: init
!local declarations
INTEGER (KIND = short) :: i, k, count
!-------------------------------end of declaration-----------------------------
IF ( countplants == 0 ) THEN
RETURN
END IF
IF (PRESENT (init) .AND. init ) THEN !open file and write header
DO i = 1, nextents
extents (i) % unitplants = GetUnit ()
OPEN (UNIT = extents (i) % unitplants, FILE = extents (i) % fileplants)
WRITE(UNIT = extents (i) % unitplants, FMT ='(a)') &
'spatial average values of plants variables'
WRITE(UNIT = extents (i) % unitplants, FMT ='(a,a)') &
'extent id: ', TRIM(extents (i) % id)
WRITE(UNIT = extents (i) % unitplants, FMT ='(a,a)') &
'extent name: ', TRIM(extents (i) % name)
WRITE(UNIT = extents (i) % unitplants, FMT ='(a,f15.5)') &
'extent area (km2): ', extents (i) % area / 1000. ** 2.
WRITE(UNIT = extents (i) % unitplants, FMT ='(a,i5)') &
'number of variables: ', countplants
WRITE(UNIT = extents (i) % unitplants, FMT = *)
WRITE(UNIT = extents (i) % unitplants, FMT = '(a)') 'data'
WRITE(UNIT = extents (i) % unitplants, FMT = '(a)', ADVANCE = 'no' ) 'DateTime '
count = 0
DO k = 1, SIZE (plantsout)
IF (plantsout (k) ) THEN
count = count + 1
IF (count == countplants) THEN !last header
WRITE(UNIT = extents (i) % unitplants, FMT = '(a)') TRIM(plantsheader (k))
ELSE
WRITE(UNIT = extents (i) % unitplants, FMT = '(a,2x)', ADVANCE = 'no') &
TRIM(plantsheader (k))
END IF
END IF
END DO
END DO
ELSE !write spatial average values
timeString = timeSpatialAveragePlants
DO i = 1, nextents
WRITE(UNIT = extents (i) % unitplants, FMT ='(a,2x, 15(E12.5,5x))') &
timeString, (extents (i) % plants (k), k = 1, countplants)
END DO
END IF
RETURN
END SUBROUTINE ExportSpatialAveragePlants